Operator CxpCameraMultiTap

運算子庫:硬體平台

此運算子代表 CXP 雙接點相機與VisualApplets 之間的 影像資料介面。您可以將此運算子用於 單通道、雙通道或四通道的 CXP 介面。您可透過參數ConnectionCount 來選擇 介面類型。此運算子 會針對每個接點埠輸出原始影像資料,無論相機傳輸的格式為何。 接著,您需要將此影像資料轉換為相機傳送的格式。要轉換 影像資料,請使用適當的操作元來彙總並將原始位元組值轉換為 像素值。運作期間的某些情況可能會透過事件 系統進行通報,如下所述。 此外,此運算子還具備多種參數,用以 指示與相機的連線狀態。

適用於硬體平台
imaFlex CXP-12 Penta
imaFlex CXP-12 Quad

CXP 標準多接點定義

通常,影像像素會 從左上角依序掃描至右下角。然而,隨著現代影像感測器上的 像素數量持續增加,此種方法無法產生令人滿意的 幀率。為解決此問題,感測器製造商採取的解決方案是 同時掃描多個像素。 CXP 標準透過 引入 抽頭的概念來支援此技術。一個「tap」可視為一種掃描 裝置,用於依序讀取影像像素。影像的掃描方式 被定義為「tap 幾何結構」,主機會從 裝置中讀取此資訊。

[注意] 「點擊」功能僅適用於垂直掃描

點擊操作僅適用於垂直掃描。水平掃描則固定為從左至 右。

CXP 標準建議, 幀擷取卡主機應支援三種 tap 格式:1X-1Y、 1X-1Y2 以及1X-2YE。 取樣格式 1X-1Y代表預設的掃描特性,即 從左上角至右下角逐像素掃描影像;而其他格式則代表 兩種取樣幾何結構,如下圖所示:

雖然來自每個監聽點的資料會被整合成 獨立的資料流,但必須注意的是, 資料流識別碼與監聽點之間並無固定的對應關係。不過,可以合理假設,在資料擷取過程中,此對應關係將保持不變 。該 TapG 程式碼,以及據此用以 找出此對應關係所需的資訊,皆載於 CXP 影像標頭中,該標頭可從 選配的 MetaDataTap0/1 埠。

點選「格式」 TapG 代碼
1X-1Y 0x0000
1X-1Y2,接點 1 0x0004
1X-1Y2,接頭 2 0x1004
1X-2YE,按鍵 1 0x0041
1X-2YE,按 2 0x1041
[注意] 翻轉影像下半部並非此 運算子的職責

在 1X-2YE取樣格式的情況下,翻轉影像下半部並非此 CxpCameraMultiTap運算子的職責。使用者應用程式 需要透過額外的VisualApplets 運算子來重新格式化該取樣(1)。

在 VisualApplets 中進行實例化

該運算子在其輸出 分接端提供影像資料。此輸出始終存在。單一分接端的情況下其值為 1,而對於雙分接端相機,則需設定為 2 。除了這些標準輸出埠之外,您還可以針對每個分接端輸出 ,即針對雙接點應用,您最多可定義 2 個 MetaDataTap連接埠。在 運算子實例化過程中會出現以下彈出對話方塊,並可配置為以下組合:

此設定等同於一個更簡單的 CxpCamera 運算子,僅有 O 個輸出且不含任何元資料。

圖 419。此配置等同於一個更簡單的 CxpCamera運算子,該運算子僅有 O 個輸出且不含 元資料。


此設定等同於選取了 O 埠與 MetaDataO 的較簡單 CxpCamera 運算子。

圖 420. 此配置等同於一個較簡單的 CxpCamera運算子,且已選取 埠 O 及 MetaDataO 。


在此設定下,僅會輸出第 0 號取樣點及其元資料;至於第 1 號取樣點,則僅輸出其元資料。此設定對於除錯相機與幀擷取卡的組合相當有用。

圖 421。在此配置下,僅會輸出取樣點 0 及其元資料。至於取樣點 1, 則僅輸出其元資料。此配置對於除錯 相機與幀擷取卡的組合相當有用。


在此配置中,操作員會透過其 Tap0 和 Tap1 埠,將兩個攝影機分流點分別作為兩個獨立的資料流提供。然而,並未輸出任何元資料資訊。

圖 422。在此配置中,營運商透過其Tap0和Tap1埠,將兩組攝影機分流訊號 分別作為兩條獨立的資料流提供。 然而,並未輸出任何元資料資訊。


在此配置中,營運商透過其 Tap0 和 Tap1 埠,分別提供兩組獨立的攝影機分流串流。營運商同時也會為 Tap0 埠提供元資料。此配置對於對稱型攝影機分流配置可能具有實用價值,在此類配置中,兩組分流的 CXP 標頭在大多數部分皆相同,唯 TapG 碼欄位除外。

圖 423。在此配置中,操作員將兩個攝影機分流皆作為 2 個獨立的 資料流,分別提供至其Tap0和Tap1埠。 營運商亦會為Tap0 埠提供元資料。此配置對於對稱式攝影機分流 配置可能具有實用價值,在此類配置中,兩條分流的 CXP 標頭在絕大部分內容上均相同,唯 TapG 碼欄位除外。


這是該運算子的最大配置,其中每個抽頭皆會呈現其專屬的輸出及其專屬的元資料。

圖 424。這是該運算子的最大配置,其中每個抽頭皆呈現其專屬的 輸出,並附有相應的元資料。


可選的 MetaDataTap 連接埠

這兩個元數據埠的格式完全相同。 該格式在VisualApplets 中以 32 位元輸出形式提供,並如以下 圖所示:

每個 CXP 幀皆提供一個對應的 無錯誤影像標頭。若影像標頭不正確,則不會將任何影像串流資料導入 VisualApplets 處理管線中。壓縮後的影像標頭由 6 個字組成。其中 最後一個位元組用於儲存附加資訊,此資訊僅供內部使用。 特別是,HeaderError 位元會指示影像標頭本身是否 存在錯誤。

圖片標題 描述
StreamId CXP 資料流的 ID
標籤 16 位元原始影像索引。此索引會隨著每張傳輸的 影像而遞增,並在達到 0xFFFF 時循環回到 0。凡是 包含同一張影像相關資料的各資料流(在 多抽頭資料流的情況下),均應使用相同的索引號。
XSize 表示影像寬度(以像素為單位)的 24 位元數值。
XOff 一個 24 位元數值,表示該 影像相對於裝置完整影像最左側像素的 水平偏移量(以像素為單位)。
YSize 表示影像高度(以像素為單位)的 24 位元數值。對於線掃描影像,此值 會被設定為 0。CameraScanMode參數 始終顯示從此值讀取的相機類型。若 Tap0/Tap1 Img 通訊協定設定為 VALT_LINE1D,則處理時會忽略 YSize,且運算子 會將所有傳入資料輸出為無盡的行流。若影像 通訊協定設定為 VALT_IMAGE2D,當 YSize=0 時,同樣會產生無盡的 行流。
YOff 24 位元數值,表示影像的垂直偏移量(以像素為單位), 相對於完整裝置影像的頂部行。對於線掃描影像, 此值設定為 0。
DSizeL 24 位元數值,表示每張影像 每行所包含的資料字數。
PixelF 表示像素格式的 16 位元值。
TapG 表示抽頭幾何形狀的 16 位元數值。
旗標 影像旗標。
x-Mirror (尚未使用)。用以描述傳入的影像是否為 x-mirrored 或非 x-mirrored。
y-Mirror (尚未使用)。描述傳入的影像是否經過 y 軸鏡像 或未經鏡像。
標頭錯誤

1:影像標頭出現錯誤,且該幀被宣告為遺失。在 運算子輸出資料 流中不存在對應的影像資料。

0:影像標頭正確,且在運算子輸出資料流中 存在對應的影像資料。

[重要] Image Protocol:面掃描與線掃描相機

對於攝影師輸出端的影像 協定而言,有兩種不同的影響因素:

  • 來自 CXP 標頭的 YSize 值。0 = 線掃描;>0 = 面掃描。

  • 操作員輸出端上所設定的協定 Tap0/Tap1 影像協定:VALT_LINE1D = 線掃描; VALT_IMAGE2D = 面掃描。

CameraScanMode參數始終顯示從 CXP 標頭讀取的 相機類型。若Tap0/Tap1 影像通訊協定設定為 VALT_LINE1D,則處理時會忽略 YSize,且操作器會將所有傳入的 資料輸出為無盡的線條串流。 若影像協定設定為 VALT_IMAGE2D,當 YSize=0 時,亦會產生無盡的線條串流,導致影像尺寸超過 Tap0/Tap1 的「最大影像高度」。 超大尺寸的影像可能會導致 在設計中緊接於CxpCamera運算子之後的運算子出現未定義的行為。 為避免此情況,建議將輸入的線流分割成多個影像,例如透過使用SplitImage運算子。

[重要] 修改 Image Width 與 Image Height

透過輸出連結的「最大影像寬度」與「最大影像高度」 屬性,您可以將寬度和高度調整為符合特定相機的 設定。然而,操作員埠 Tap0/Tap1 上的最大影像寬度 必須 能被該端口的並行度 。因此,請確保最大 影像寬度能被 Tap0 和 Tap1 端口的並行度整除!

裝置資源使用情況

該運算子會根據 ConnectionCount 參數的設定,使用一個或多個 類型為CameraPort的資源。 對於事件 系統,會使用類型為 EventPort的資源。若 ConnectionCount設定為 X4(四通道),則會開啟以下資源對話方塊 :

錯誤處理與事件系統

當操作員偵測到接收到的 重建影像幀比攝影機在 CXP 影像標頭中傳遞的尺寸更大或更小時,安全電路便會啟動。此時操作員會裁切掉超出 的像素與行,以確保後續的處理流程始終處理的是 影像標頭中定義的幀尺寸。 若接收到的幀在 尺寸上小於影像標頭中指定的尺寸,操作員會使用未定義的資料填補 接收到的幀,以達到 影像標頭中定義的指定幀尺寸。填補較小的幀可能會導致後續幀 遺失。 此遺失情況會以事件形式通報給執行時軟體(Framegrabber SDK)(請參閱下一段)。尺寸不符同樣會觸發一個事件。

For a set of very critical errors, the operator will forward asynchronous events to the host runtime software (Framegrabber SDK). The event name in the Framegrabber API is <hierarchical operator name>\CxpStreamStatus, e.g. Device1\Process0\Camera\CxpStreamStatus. The event payload is provided as four 16-bit data words. The event format is defined as follows:

  • 字組 [0]:

    • 位元 [0:15]:發生該事件的 CXP 影像標籤。

  • 字組 [1]:

    • 位元 [8:15]:發生該事件的串流 ID。

    • 位元 [0:7]:保留,視為無關位元。

  • 字組 [2]:

    • 位元 [0]:發生 CRC 錯誤。

    • 位元 [1]:在影像標頭中偵測到串流標記錯誤。

    • 位元 [2]:偵測到影像標頭中的錯誤,且 無法修正。

    • 位元 [3]:偵測到幀大小錯誤,即 CXP 影像標頭中定義的影像大小 與 從傳輸封包中重建出的幀大小不符。此 情況通常發生在攝影機將某項資訊寫入影像標頭,但 實際傳輸的資料量卻與標頭中聲明的不一致。

    • 位元 [4:15]:保留,視為無關位元。

  • 字組 [3]:

    • 位元 [0]:事件類型,0 = 實體 損毀,1 = 遺失實體。

      • 損毀的實體 意指該 錯誤發生於某個幀內,且該幀已 被導入至VisualApplets 處理流程中。

      • 遺失實體 意指該 錯誤發生在幀被轉發至 後續操作員之前,且該幀已被 攝影師刪除。

      • 當偵測到資料實體損毀時, 處理器將根據 CXP 影像標頭定義填補該幀,以確保後續的處理器 不會引發未定義行為。 在此填補過程中, 可能會接收到新的幀,但該幀將會遺失。當攝影機傳送 的資料根據幀標籤出現缺口時,也會觸發 實體遺失事件。

    • 位元 [1]:類型 實體 發生損毀 的事件遺失。這表示先前 類型為 「損毀實體」 已遺失。此情況 通常發生於執行時軟體未對事件作出反應,且 內部事件佇列已滿時。

    • 位元 [2]:類型 已遺失 實體 發生。這表示先前 類型為 「遺失實體」 已遺失。此情況發生於 執行時軟體未對事件作出反應,且 內部事件佇列已滿時。

    • 位元 [3:15]:遺失的 遺失實體 事件。

事件分為兩種類型:針對 損毀實體的事件,以及針對遺失實體的事件。第 3 字元的第 0 位元描述發生的是哪種 事件。若事件緩衝區已滿,可能會發生事件遺失的情況。 當標示損毀實體的事件遺失時,第 3 字元的第 1 位元將會被設定。 當 標記損毀實體的事件遺失時,第 3 字的第 1 位元將被設定; 當標記遺失實體的事件遺失時,第 3 字的第 2 位元將被設定,且第 3 至 15 位元 將提供遺失事件的數量,以指示遺失的幀。若第 2 位元被設定,但 計數器為 0,則表示發生了計數器溢出。

每個事件都會觸發一個軟體中斷。為了 減少事件數量,幾個具有相同幀標籤的事件可能會被合併 在一起。在這種情況下,某些錯誤標誌也會一併合併。如果某個事件遺失了,該遺失事件 之前的事件會包含關於該遺失事件的資訊,且無法與 之後具有相同幀標籤的事件進行合併。

因 CRC 錯誤所引發的事件會回報一個 幀標籤,該標籤未必與發生 CRC 錯誤的幀完全對應。 該幀標籤可能是前一幀或下一幀的標籤。這種情況僅會在 相機傳送包含兩個或更多幀之間轉換的 CXP 封包時發生。 CRC 計算會在封包結尾時完成,但串流資料是 即時重建的。這意味著可能會發生以下情況:在操作員已將前一幀 傳送出去之後,才偵測到 CRC 錯誤。在正常 情況下,若攝影機封包未同時包含 當前幀的結尾與下一幀的開頭資料,則發生 CRC 錯誤時 的幀標籤將始終正確。對於所有其他情況,只要完整的幀串流資料小於 8k 的最大封包大小,則單個封包內可能僅會出現 1 幀的重疊。 在此情況下,軟體應用程式應將前一幀(其 幀標籤為 -1)以及後一幀(其幀標籤為 +1)視為可能已損壞的 幀。

[注意] 區分各抽頭間的誤差事件

錯誤處理與事件系統在兩個 CXP 抽頭串流中均適用。請使用 stream-ID 欄位,將接收到的事件與對應的抽頭相關聯。通常,抽頭 0 會獲得較低的 stream-ID,通常為 0。抽頭 1 則會獲得一個比 抽頭 0 更大的 stream-ID。

I/O Properties

Property Value
Operator Type M
輸出連結 Tap0/Tap1,影像資料輸出
MetaDataTap0/MetaDataTap1,可選的元資料輸出

Supported Link Format

Link Parameter 輸出鏈路 Tap0/Tap1 輸出連結 MetaDataTap0/MetaDataTap1
Bit Width 8 32
Arithmetic 無號數 無號數
Parallelism auto 1
Kernel Columns 1 1
Kernel Rows 1 1
Img Protocol {VALT_IMAGE2D, VALT_LINE1D} (default: VALT_IMAGE2D)1 {VALT_IMAGE2D, VALT_LINE1D, VALT_PIXEL0D} (default: VALT_IMAGE2D)
Color Format VAF_GRAY VAF_GRAY
Color Flavor FL_NONE FL_NONE
Max. Img Width 任意 (預設值:1032) 6
Max. Img Height 任意 (預設值:1032) 1

1

若 Tap0/Tap1 影像通訊協定設定為 VALT_LINE1D,則處理時將忽略 CXP 標頭中的 YSize 值,且 運算子會將所有傳入資料以無盡的行流形式輸出。 若影像 協定設定為 VALT_IMAGE2D,則當 YSize=0(線掃描相機)時,同樣會產生 無盡的線條串流,導致影像尺寸超過 Tap0/Tap1 的最大影像高度。

Parameters

ConnectionCount
Type 靜態寫入參數
Default X1
Range {X1, X2, X4}

參數 ConnectionCount定義匯聚至 CXP 鏈路的 CXP 通道數。所使用連接埠的索引由 類型為CameraPort 的資源進行管理。 埠資源的數量應與連接數相符(例如 X2:兩個CameraPort 資源項目)。

當您實例化多個 CxpCamera運算子(例如用於雙鏡頭 小程式)時,若使用多個索引相同的 資源,或消耗的 CameraPort資源的數量超過 4 這個上限時,便可能發生資源衝突。在此情況下,設計規則檢查會回報錯誤。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個監聽器皆相同,也就是說, ConnectionCount參數會統計 兩個監聽器資料流中已使用的連線埠數量。

重設狀態
Type 動態寫入參數
Default 關閉
Range {關, 開}

參數 ResetStatus會重置攝影機的統計資料, 也就是錯誤計數器。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個分流皆適用,也就是說, 「ResetStatus」參數會重置 兩個分流中的攝影機統計資料。

UsedConnections
Type 動態讀取參數
Default
Range {1,2,4}

參數 UsedConnections顯示由發現軟體在執行時 所配置的 CXP 通道數量。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個監聽埠皆適用,也就是說, UsedConnections參數代表 兩個監聽埠流中已設定的連接埠。

PacketTagErrorCount
Type 動態讀取參數
Default
Range [0 : 8191]

參數 PacketTagErrorCount顯示有多少 已接收封包的標籤不符合 CXP 標準所規定的預期標籤。特別是,當 在後續串流封包標籤的編號中觀察到缺口時,此值會遞增。 此參數 寬度為 13 位元,其中位元 [11:0] 代表實際計數器值,而 位元 [12] 則表示計數器溢出。當溢出位元被設定時, 計數器值應視為無效。

[注意] 所有參數對兩個分接頭皆相同

所有參數在兩個 tap 之間均為共用,也就是說, PacketTagErrorCount參數會統計 兩個 tap 資料流中帶有非預期標籤的封包數量。

ImageTagErrorCount
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用於統計 影像標頭標籤、根據 CXP 標準所預期的標籤,以及實際接收到的標籤之間 出現多少處不匹配。 此參數寬度為 13 位元,其中位元 [11:0] 代表實際計數器值,而位元 [12] 則表示 計數器溢出。當溢出位元被設定時,計數器值應 視為無關。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個分流皆適用,也就是說, ImageTagErrorCount參數會統計 兩個分流中標籤不匹配的次數。

串流識別碼錯誤計數
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用以統計 流封包中接收到的流 ID 值與 影像標頭中指定的流 ID 值不匹配的次數。 此參數寬度為 13 位元,其中位元 [11:0] 代表實際計數器值,而位元 [12] 則表示 計數器溢出。當溢出位元被設定時,計數器值應 視為無關。

[注意] 所有參數對兩個分接頭皆相同

所有參數在兩個監聽點中均適用,也就是說, StreamIdErrorCount參數會統計 兩個監聽點資料流中的所有串流 ID。

CorrectedErrorCount
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用以計數在影像標頭或行標記中偵測到的 錯誤中有多少已被修正。此 參數為 13 位元寬,其中位元 [11:0] 代表實際計數器 值,而位元 [12] 則表示計數器溢出。 當溢位位元被 設定時,計數器值應被視為無關緊要。

未修正錯誤數
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用以統計在影像標頭或行標記中偵測到的 錯誤中,因同一位元組內出現多個位元錯誤而無法修正的 錯誤數量。此參數寬度為 13 位元,其中位元 [11:0] 代表實際計數器值,而位元 [12] 則表示 計數器溢出。當溢出位元被設定時,計數器值應被 視為無關緊要。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個分流點皆適用,也就是說,錯誤監控參數 代表兩個分流點資料流中 各對應錯誤類型的總和。

PacketBufferOverflowCount
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用於統計在聚合模式下, 通道綁定中發生封包緩衝區溢位的情況次數。此 參數僅在 ConnectionCount = X2 或 X4時才適用。該參數寬度為 13 位元,其中位元 [11:0] 代表實際計數器值,而位元 [12] 則表示計數器 溢出。當溢出位元被設定時,應將計數器值視為 無關緊要。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個 tap 皆相同,也就是說, PacketBufferOverflowCount參數會統計 兩個 tap 資料流中發生的封包緩衝區溢出次數。

PacketBufferOverflowSource
Type 動態讀取參數
Default
Range [0x0 : 0xf]

此參數實作了一個位元遮罩,用以 查詢在 4 個潛在的 CXP 通道中,哪一個通道發生了封包緩衝區溢出 。此參數的寬度取決於參數 ConnectionCount。在 X1 模式下,該參數的寬度為 1 位元;在 X2 模式下, 該參數寬度為 2 位元,而在 X4 模式下,參數 寬度為 4 位元。順序為:LSB = 最低 CXP 通道號,MSB = 營運商所分配的最高 CXP 通道號。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個 tap 皆適用,也就是說, PacketBufferOverflowSource參數會跨兩個 tap 資料流搜尋 溢出情況。

CameraScanMode
Type 動態讀取參數
Default
Range {面積、線段}

接收到的影像標頭包含 該影像串流是適用於區域掃描 (YSize> 0) 還是線性掃描 (YSize= 0) 應用程式的資訊。此參數顯示 最後一個有效的接收影像串流標頭資訊。

此參數僅針對 Tap0 串流進行讀取,並假設 Tap1 串流的模式與之完全相同。這 意味著此參數適用於整個相機的區域掃描或線性掃描, 因此對兩個抽頭而言均相同,並非特定於某個抽頭。

標記錯誤計數
Type 動態讀取參數
Default
Range [0 : 8191]

此參數用於統計 CXP 串流標記與標頭或行標記的序列 出現錯誤的次數。 此參數寬度為 13 位元,其中位元 [11:0] 代表 實際計數器值,而位元 [12] 則表示計數器溢出。當 溢出位元被設定時,計數器值應視為無關緊要。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個分流點皆適用,也就是說,錯誤監控參數 代表兩個分流點資料流中 各對應錯誤類型的總和。

意外的啟動資料
Type 動態讀取參數
Default
Range {false, true}

此參數用於偵測以下錯誤 狀況:在執行「重置」操作後,第一個資料值出乎意料, 也就是說,先前並未接收到任何影像標頭。此狀況可能源於 攝影機或幀擷取卡韌體的實作存在瑕疵,或是軟體 對偵測程序的控制不當。 此外,相機的硬體故障 理論上也可能導致此類情況。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個分流點皆適用,也就是說,錯誤監控參數 代表兩個分流點資料流中 各對應錯誤類型的總和。

FrameLostCount
Type 動態讀取參數
Default
Range [0 : 33554431]

此參數用於統計在擷取過程中 遺失且未傳送至VisualApplets 處理流程的影像幀。 當偵測到影像標頭中的錯誤,或當某個影像幀 與另一個影像幀重疊時,該影像幀即會遺失。此參數寬度為 25 位元,其中位元 [23:0] 代表實際計數器值,而位元 [24] 則表示計數器 溢出。當溢出位元被設定時,計數器值應被視為 無關緊要。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個 tap 而言都是共通的,也就是說, FrameLostCount參數會統計 兩個 tap 資料流中遺失的幀數。

FrameCorruptedCount
Type 動態讀取參數
Default
Range [0 : 33554431]

此參數用於統計擷取過程中出現的 損壞幀。損壞幀是指含有錯誤像素的幀,這些幀 會被傳送至VisualApplets 處理管線。 此參數寬度為 25 位元,其中 位元 [23:0] 代表實際計數器值,而位元 [24] 則表示 計數器溢出。當溢出位元被設定時,計數器值應 視為無關。

[注意] 所有參數對兩個分接頭皆相同

所有參數對兩個監聽點皆適用,也就是說, FrameCorruptedCount參數會統計 兩個監聽點資料流中所有損毀的幀。

Examples of Use

以下範例展示了 CxpCameraMultiTap 運算子的使用方式: